// 封装本地存储模块

/**
 * 获取本地数据
 * @param {*} key 从本地获取数据时所需要的key
 */
export const getItem = key => {
  // 获取本地数据
  const data = localStorage.getItem(key)
  // 判断本地数据是否为 json字符串 如果是则转化为json字符串
  try {
    return JSON.parse(data)
    //  如果不是,浏览器会报错,捕获错误,且原数据返回
  } catch {
    return data
  }
}

/**
 * 设置本地数据
 * @param {string} key 存入本地数据的key
 * @param {any} val 存入本地数据的值
 */
export const setItem = (key, val) => {
  // 判断要存储的数据是否为object 如果是object先则转化为json字符串再存入本地数据
  if (typeof val === 'object') {
    val = JSON.stringify(val)
  }
  localStorage.setItem(key, val)
}

/**
 * 删除本地数据
 * @param {string} key 删除本地数据所需要的key
 */
export const removeItem = key => {
  localStorage.removeItem(key)
}
